#pragma once
#ifndef SHADER_H
#define SHADER_H

#include<glad/glad.h>
#include<glad/glad.h>
#include<glm/glm/glm.hpp>
#include<glm/glm/gtc/matrix_transform.hpp>
#include<glm/glm/gtc/type_ptr.hpp>

#include <string>
#include <fstream>
#include <sstream>
#include <iostream>


class Shader {
public:

	//program id
	unsigned int programe;

	Shader(const GLchar* vertexPath, const GLchar* fragPath);
	void use();
	void setBool(const std::string &name, bool value) const;
	void setInt(const std::string &name, int value) const;
	void setFloat(const std::string &name, float value) const;
	void setMat4(const std::string &name, glm::mat4 value) const;
	void setVec3(const std::string &name, glm::vec3 value) const;

private:
	void CHECKCompileError(unsigned int shader,std::string type);
};

#endif // !SHADER_H

